基本情報技術者試験の科目B プログラミング、アルゴリズムが苦手な方へ。
基本情報技術者試験のアルゴリズムの問題を解答・解説したうえで、Pythonで実装してみました。

解説
ポイントを押さえて問題を読めば難しくはない問題でしょう。
まず着目するのは問題文の最後「整数型の配列arrayの要素の並びを逆順にする」というところで
arrayは最初{1,2,3,4,5}になっているので、答えは{5,4,3,2,1}になるプログラムを書くということです。
プログラム中で利用する変数がright、left、tmpと命名されていることから、単純に配列の左右の要素を入れ替えて、並び順を変えるアルゴリズムであると推測してよいでしょう。
tmpとはtemporary(一時的な)の略で、一時的に値を格納するためによく宣言される変数名です。
以上より
1.右の要素をいったんtmpに入れておく。
2.左の要素を右に入れる。
3.そのあとtmpに入れておいた右の要素を左に入れる。
という順番で入れ替えるのであるだろうということも推測されます。
プログラム中の
for (left を 1 から (arrayの要素数 ÷ 2 の商) まで 1 ずつ増やす)
という記述より
arrayの要素数 は1,2,3,4,5の5つなので
5÷2の商 = 2回繰り返すことになることがわかります。
{1,2,3,4,5}の要素に対して左右を入れ替える処理を2回繰り返し、{5,4,3,2,1}にするための処理を考えます。
1回目:両端の1と5を入れ替える→{5,2,3,4,1}
2回目:{5,2,3,4,1}の両端からそれぞれ内側に1つずつ移動した場所にある、2と4を入れ替える→{5,4,3,2,1}
という処理になるでしょう。
以上を踏まえ、プログラム中の a に入るものを考えると、配列の一番右から左に向かって順番に要素がrightに代入されるようになるよう考えないといけません。
この問題の疑似言語の配列は要素番号は1から始まるので一番右の要素番号は5になります。(※ここ要注意ですね)
最初の繰り返しの時には数字の5が入り、2回目の繰り返しの時には4にようになるものを選びます。
選択肢から選ぶとウかエの arrayの要素数(5) – left(1回目は1, 2回目の繰り返しの時は2) + 1が正しいでしょう。
b に入るものは最初に推測した通り、
1.右の要素をいったんtmpに入れておく。
2.左の要素を右に入れる。
3.そのあとtmpに入れておいた右の要素を左に入れる。
を踏まえ、array[left]となるでしょう。
よって答えは「ウ」になります。
Pythonで実装してみた
array = [1,2,3,4,5] #配列(pythonではlistですが)arrayを宣言します。
right,left = 0,0 #変数right,leftを宣言して0で初期化します。
tmp = 0 #変数tmpを宣言して0で初期化します。
#以下left を 1 から (arrayの要素数 ÷ 2 の商) まで 1 ずつ増やす
for left in range(len(array) // 2):
right = len(array) - left -1
tmp = array[right]
array[right] = array[left]
array[left] = tmp
#arrayの中身確認用です
print(array)
#[5,4,3,2,1]
※pythonのリストは要素番号(インデックス)が0から始まり、この試験の疑似言語の配列は要素番号が1から始まるめ、試験の解答とは記述が異なります。(上記、サンプルプログラムのright = len(array) – left -1 の個所です)
ちなみにpythonにはreverse()というリスト型のメソッドが用意されていて。それを使うと簡単に、逆順に並び替えることができるんですけどね。
array = [1,2,3,4,5]
array.reverse()
print(array)
#[5,4,3,2,1]